﻿bool createdNew;

//用第三个参数，命名一个名字，在进程间共享同一个信号量
//初始化为1，表示同时只能有一个线程可以拿到信号量
Semaphore semaphore = new Semaphore(1, 1, "PigeonNamedSemaphore", out createdNew);

if(createdNew)
{
    Console.WriteLine("创建了新信号量");
}
else
{
    Console.WriteLine("打开了现有信号量");
}

while(true)
{
	try
	{
		semaphore.WaitOne();

		Console.WriteLine("进程B拿到信号量，开始工作!");

		Thread.Sleep(2000);

	}
	finally
	{
        semaphore.Release();
    }
}


